<?php
/**
 * 用户管理模型
 * @authors 大个子 (354449881@qq.com)
 * @date    2018-01-12 09:09:09
 * @version 1.0
 */
namespace Home\Model;
use Think\Model\RelationModel;
class UserModel extends RelationModel{
	//自动验证
	protected $_validate = array(
		//array(验证字段,验证规则,错误提示,[验证条件,附加规则,验证时间])
		array('id','number','ID号参数获取失败',0,'',2),									//在更新数据时验证ID是否正确
		array('roleid','number','角色ID获取失败',0,''),									//在更新数据时验证ID是否正确
		array('username','require','请输入用户名称！'),									//检查用户名是否为空
		array('username','','此用户名已经存在！',0,'unique',3),								//检查用户名称是否存在，仅在新增时验证
		array('username','2,20','用户名称请在20个字符以内！',0,'length'),					//将用户名称限定在20个字符以内
		array('username','/^[\x{4e00}-\x{9fa5}a-zA-Z0-9_-]{2,16}$/u','请输入合法的用户名！',0,'regex'),		//判断用户名是否合法
		array('password','6,18','请输入6~18位数的安全密码！',0,'length',1),					//验证密码长度
		array('password','6,18','请输入6~18位数的安全密码！',2,'length',2),					//修改时如果密码不为空则进行判断
		array('email','email','请填写正确的邮箱！'),										//验证邮箱的有效性
		array('description','0,50','角色描述请在50个字符以内！',0,'length'),					//将描述限定在50个字符以内
		array('competence','require','请给角色授权！'),									//将描述限定在50个字符以内
		array('competence','2,255','角色授权超出范围！',0,'length',3),						//将字段长度限定在255个字以内
		array('status','number','状态获取值不正确')										//获取状态值
	);
	//自动完成
	protected $_auto = array ( 
		array('dtime','Dtime',1,'callback'),
		array('password','sha1pow',1,'callback'),
		array('password','sha2pow',2,'callback')
	);
	//添加当前时间
	protected function Dtime() {
		return date('Y-m-d H:i:s');
	}
	//新增时加密密码
	protected function sha1pow($password) {
		return sha1(md5($password));
	}
	//修改时加密密码
	protected function sha2pow($password) {
		if ($password!='') {
			return sha1(md5($password));
		}else {
			return false;
		}
	}
	//关联查询
	protected $_link = array(
		'role' => array(
			'mapping_type'=>self::BELONGS_TO,
			'class_name'=>'role',
			'foreign_key'=>'roleid',
			'mapping_name'=>'role',
			'mapping_fields'=>'rolename',
			'as_fields'=>'rolename'
		),
	);
}